﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WpfApplication2.Helpers;
using System.Windows.Input;
using WpfApplication2.UserControls;
using System.Windows.Controls;
using WpfApplication2.SindicatoWebService;
using System.Windows;
using WpfApplication2.Views.Afiliado;
using WpfApplication2.Views.TipoOrden;
using WpfApplication2.Views.TipoPlan;
namespace WpfApplication2.ViewModels.TipoPlan
{
   
          class ConsuPlanViewModel : ViewModel
    {
        public Service1SoapClient WS;
        #region properties

        public String NombreAux
        {
            get
            {
                return nombreAux;
            }
            set
            {
                if (nombreAux != value)
                {
                    nombreAux = value;
                    RaisePropertyChanged("NombreAux");
                }
            }
        }
        private String nombreAux;

        public Instancias Instancias { get; set; }
       
        public PropertyElement Nombre
        {
            get
            {
                return nombre;
            }
            set
            {
                if (nombre != value)
                {
                    nombre = value;
                    RaisePropertyChanged("Nombre");
                }
            }
        }
        private PropertyElement nombre;
        public PropertyElement Descripcion
        {
            get
            {
                return descripcion;
            }
            set
            {
                if (descripcion != value)
                {
                    descripcion = value;
                    RaisePropertyChanged("Descripcion");
                }
            }
        }
        private PropertyElement descripcion;
        public PropertyElement PrecioTPlan
        {
            get
            {
                return precioTPlan;
            }
            set
            {
                if (precioTPlan != value)
                {
                    precioTPlan = value;
                    RaisePropertyChanged("PrecioTPlan");
                }
            }
        }
        private PropertyElement precioTPlan;

        public TipoPlanDTO[] Resultados
        {
            get
            {
                return resultados;
            }
            set
            {
                if (resultados != value)
                {
                    resultados = value;
                    RaisePropertyChanged("Resultados");
                }
            }
        }
        private TipoPlanDTO[] resultados;

        public TipoPlanDTO TipoPlan
        {
            get
            {
                return tipoPlan;
            }
            set
            {
                if (tipoPlan != value)
                {
                    tipoPlan = value;
                    RaisePropertyChanged("TipoPlan");
                }
            }
        }
        private TipoPlanDTO tipoPlan;

     

        #endregion

        public ConsuPlanViewModel(Instancias instancias)
        {
            WS = new Service1SoapClient();
            Instancias = instancias;
            Resultados = WS.ConusltarPlan();
        }
       
        //******************************************************************************

           private bool CanExecute()
        {
            return true;
           }
        private DelegateCommand consularTPlanXNombre;

        public ICommand ConsularTPlanXNombre
        {
            get
            {
                if (consularTPlanXNombre == null)
                {
                    consularTPlanXNombre = new DelegateCommand(Consultar, CanExecute);
                }
                return consularTPlanXNombre;
            }
        
           
        }
        private void Consultar()
        {
            if (TipoPlan != null)
            {
                Instancias.FrameContent.Content = new TipoPlanDetalle(Instancias, TipoPlan);
            }
            else
            {
                Instancias.ModalDialog.ShowHandlerDialog(String.Format("Seleccione un plan por favor"));
            }
        }

        private DelegateCommand buscarXNombre;
        public ICommand BuscarXNombre
        {
            get
            {
                if (buscarXNombre == null)
                {
                    buscarXNombre = new DelegateCommand(BuscarPorNombre, CanExecute);
                }
                return buscarXNombre;
            }


        }
        private void BuscarPorNombre()
        {
            Resultados = WS.TipoPlan_BuscarXNombre(NombreAux);
        }

    }
}
